#!/bin/bash
x[10]=aaaaa; x[11]=bbb; x[12]='"ccc ccc"'; x[13]=d; x[777]=eeeeee ; alku=2; montako=3
# Matriisin nimen, jäsenten lukumäärän, arvot ja osoitteet voi muuttaa haluamikseen, sillä funktio käy läpi osoitetun matriisin osoitealueen järjestyksessä alhaalta ylös ja tulostaa vain määritellyt jäsenet; siis määrittelemättömiä jäseniä ei huomioida.

function TulostaMatriisi () {
echo -n Matriisin $1 'arvot: '; [[ ! $(eval echo \${$1[*]}) ]] && echo matriisi on määrittelemätön && echo && return
[[ ! $2 && ! $3 ]] && [[ $(eval echo \${$1[*]}) ]] && eval echo -n \${$1[@]} && echo && return 
[[ $2 && $3 ]] && [[ $(eval echo \${$1[*]}) ]] && eval echo -n \${$1[@]:$2:$3} && echo && return
[[ ! $3 ]] && [[ $(eval echo \${$1[*]}) ]] && eval echo -n \${$1[@]:$2} && echo && return
$(eval echo \${$1[*]}) ]] && eval echo -n \${$1[@]::$3} && echo
}

TulostaMatriisi x                              # koko Matriisin tulostus
#TulostaMatriisi x alku montako                # tulostus alun määräämästä jäsenestä montako jäsentä eteenpäin
#TulostaMatriisi x 0 montako                   # tulostus Matriisin alusta montako jäsentä eteenpäin. 
#TulostaMatriisi x alku                        # tulostus alun määräämästä jäsenestä Matriisin loppuun
TulostaMatriisi y
                                                
#x=( "${x[@]}" )                               # BASH:in matriisissa voi alussa tai keskellä olla määrittelemättömiä jäseniä. Näin poistetaan määrittelemättömät jäsenet
#x=( "${x[@]::$alku}" "${x[@]:$((alku+1))}" )  # alku:n osoittaman jäsenen palauttaminen määrittelemättömäksi ja heti perään määrittelemättömän jäsenen poisto.
